#ifndef _SEMAPHORE_H
#define _SEMAPHORE_H

#include <stdatomic.h>
#include <type.h>

typedef struct semaphore {
    atomic_uint count;
} sem_t;

void sem_init(sem_t* sem, u32 init);

void sem_wait(sem_t* sem);

void sem_post(sem_t* sem);

#endif